package com.phoenix.jsef.framework.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 这个注解作为商业实体集合类EntityCollection的属性，记录了java商业实体之间一对多的关系
 * @author 李启联
 *
 */
@Documented
@Target({ElementType.FIELD}) 
@Retention(RetentionPolicy.RUNTIME)
public @interface EntityCollectionAttribute {

	/**
	 * 这个属性标记这个1:N的关系中，N的那一方，实体的类
	 * 
	 */
	public Class elementType();
	
	/**
	 * 这个属性标记这个1:N的关系中，N的那一方，指向1的那一方的外键字段
	 * 
	 */
	public String foreignKeyProperty();
	
	/**
	 * 这个属性标记这个1:N的关系中，1的那一方，被N的那一方所指向的参引字段
	 * 
	 */
	public String referredKeyProperty();
}
